To improve efficiency of data recovery in a computing environment, data can be stored in a storage hierarchy which can be comprised of one or more data storage pools. Generally, each storage pool includes multiple storage volumes. A volume can be a standard file system file, a tape cartridge or an optical cartridge, for example. Each pool and each volume within each pool may have a predetermined data access speed based on the hardware used to access the volume. Often, the primary backup data is stored on more expensive high-speed storage mediums (e.g., disk drives) and the secondary backup data is stored on less expensive and slower data storage mediums (e.g., tapes or optical disks).
The above approach provides both a level of cost efficiency and a degree of data redundancy, which is useful in case the primary backup data is inaccessible. If a storage pool or medium in which the primary backup data is stored is unavailable, or if the target backup data on the medium is corrupted, the slower storage mediums will have to be accessed according to a preconfigured (i.e., built-in) access hierarchy to retrieve another copy of target backup data. The access hierarchy defines the order in which the storage pools are to be searched.
Unfortunately, the above approach is not optimal in that it can lead to long delays in finding the target data from among sets of active and inactive backup data which are mixed together. Also, longer delays are possible when the needed data is to be retrieved from a slow speed or remotely located storage medium. Even further, in the currently available data storage systems, a system administrator cannot customize or update the search hierarchy that is built in the backup system, even if a more desirable search hierarchy is possible.
Accordingly, data storage methods and systems are needed that can overcome the aforementioned shortcomings.